package View;

import pojo.Car;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main_window {

    private JFrame frame = new JFrame("主窗口");
    private JPanel backgroundPanel = new JPanel(); // 包含背景图片的面板
    private JButton bVehicleManagement = new JButton(" 车辆管理");
    private JButton bCustomerManagement = new JButton("租车管理");
    private JButton bReturn = new JButton(" 退出登录");

    private Car_window car_window;
    private  CarRental_window carRental_window;
    private  Login_window login_window;

    public Main_window() {
        frameControl();
    }

    // 设置容器管理
    public void frameControl(){
        // 设置底层容器和布局管理器
        frame.setSize(389, 390);
        frame.setLocation(600, 200);
        frame.setResizable(false);

        //设置字体及密码展示
        MysetFont();

        // 设置背景图片
        backgroundPanel.setLayout(new BorderLayout());
        ImageIcon background = new ImageIcon("src/main/resources/picture/back2.jpg");
        JLabel backgroundLabel = new JLabel(background);
        backgroundPanel.add(backgroundLabel, BorderLayout.CENTER);
        frame.setContentPane(backgroundPanel);

        //进行布局排版
        MyLayout();

        //事件处理
        eventTake();

        // 设置窗口可见性和关闭操作
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    //设置字体
    public void MysetFont(){
        bVehicleManagement.setFont(new Font("隶书",Font.BOLD,20));
        bCustomerManagement.setFont(new Font("隶书",Font.BOLD,20));
        bReturn.setFont(new Font("隶书",Font.BOLD,20));
    }

    //进行布局排版
    public void MyLayout(){
        //创建一个新的JPanel，并使用GridBagLayout布局管理器。
        JPanel buttonPanel = new JPanel(new GridBagLayout());
        //创建GridBagConstraints对象，用于指定组件在GridBagLayout中的位置和大小以及其他属性。
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(0, 2, 0, 2); // 设置组件之间的间距

        //设置bVehicleManagement按钮位置
        gbc.gridx = 1;
        gbc.gridy = 1;
        buttonPanel.add(bVehicleManagement, gbc);

        //设置bCustomerManagement按钮位置
        gbc.gridx = 2;
        gbc.gridy = 1;
        buttonPanel.add(bCustomerManagement, gbc);

        //设置bReturn按钮位置
        gbc.gridx = 3;
        gbc.gridy = 1;
        buttonPanel.add(bReturn, gbc);

        //将按钮面板添加到背景面板 (backgroundPanel) 的北部（顶部）。
        backgroundPanel.add(buttonPanel, BorderLayout.NORTH);
    }

    //事件处理
    public void eventTake(){
        // 添加车辆管理按钮的点击事件监听器
        bVehicleManagement.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 处理车辆管理按钮的点击事件
                System.out.println("车辆管理按钮被点击了");
                //将主窗口隐藏
                frame.setVisible(false);
                //打开车辆管理窗口
                try {
                    car_window = new Car_window();
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        });

        // 添加顾客管理按钮的点击事件监听器
        bCustomerManagement.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 处理顾客管理按钮的点击事件
                System.out.println("租车按钮被点击了");
                //将主窗口隐藏
                frame.setVisible(false);
                //打开顾客管理窗口
                try {
                    carRental_window = new CarRental_window();
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        });

        // 添加车辆租赁管理按钮的点击事件监听器
        bReturn.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                // 处理车辆租赁管理按钮的点击事件
                System.out.println("退出登录");
                //关闭该窗口
                frame.setVisible(false);
                login_window = new Login_window();
            }
        });
    }

    public static void main(String[] args) {
        Main_window main_window = new Main_window();
    }

}
